# 创建时间：2025/5/4 星期日 20:38
# 创建人：李德才


""" 通过重写类的部分方法，可以实现定制化的对象行为，使得对象的行为更加符合我们的需求 """


class Student(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return 'Student object (name: %s)' % self.name

    def __getitem__(self, item):  # 通过重写__getitem__方法，使得可以通过索引访问对象的属性
        return self.name[item]

    def __getattr__(self, item):  # 通过重写__getattr__方法，使得可以通过属性名访问对象的属性
        if self.__dict__.get(item) is None:
            return AttributeError("'Student' 中没有这个属性： '%s'" % item)
        return self.__dict__[item]


s = Student('John', 30)
print(s)
print(s[0])
print(s[1])
print(s.namcecdc)